package com.wasin.server.util;

import cn.dev33.satoken.secure.SaSecureUtil;
import cn.hutool.crypto.symmetric.AES;


/**
 * @ 作者： wasin
 * @ 创建时间： 2021/9/18  16:38
 * @ 说明：    加密工具
 * @ 当前版本:  1.0.0
 */

public class EncryptUtils {

    private static byte[] key2;
    /**
     * PKCS7Padding 字符串加密
     * @param content 加密的字符串
     * @param key 密匙 16位
     * @return
     */
    public static String encryptPKSCData(String key,String content){
        AES aes = new AES("CBC", "PKCS7Padding",
                // 密钥，可以自定义
                key.getBytes(),
                // iv加盐，按照实际需求添加
                "DYgjCEIMVrj2W9SA".getBytes());
        return aes.encryptHex(content);
    }


    /**
     * PKCS7Padding 字符串解密
     * @param content 加密的字符串
     * @param key 密匙  16位
     * @return
     */
    public static String decodePKCSata(String key,String content){
        AES aes = new AES("CBC", "PKCS7Padding",
                // 密钥，可以自定义
                key.getBytes(),
                // iv加盐，按照实际需求添加
                "DYgjCEIMVrj2W9SA".getBytes());
        return aes.decryptStr(content);
    }
    public static void main(String[] args) {
        String s = encryptAESData("wasin", "aaaaaaa");
        System.out.println(s);
        String wasin = decodeAESData("wasin", s);
        System.out.println(wasin);
    }

    /**
     * aes加密
     * @param key
     * @param data 加密数据
     * @return
     */
    public static String encryptAESData(String key,String data){
        return SaSecureUtil.aesEncrypt(key, data);
    }

    /**
     * aes解密
     * @param key
     * @param data 解密数据
     * @return
     */
    public static String decodeAESData(String key,String data){
        return SaSecureUtil.aesDecrypt(key, data);
    }

}
